Django Rest Framework调试之坑

原来想让自己通过项目的方式学习学习Django这一框架,结果拖延症的我到最后开始才做起来,没想到真是给自己挖大坑,这里就记录一下项目进展过程的中遇到的一些问题。

  1. 设置非必填项

    通过model定义的字段一般都是必填的,如果允许为空的话需要自己设置属性,例如:

    1
    2
    3
    class User(models.Model):
    uid = models.CharFields(max_length=30, blank=True)
    weight = models.DecimalField(max_digits=9, decimal_places=2, null=True, blank=True)

    需要注意的是:对于时间和输入,允许为空的条件需要

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

    2. def \__str__(self)的兼容

    关于该函数,在python2和3下有不同的书写方式,需要注意,否则会报错:

    ```python
    def __str__(self):
    # python3写法
    return self.record_id
    # python2写法
    return self.record_id.encode("utf-8")
    # 通用写法
    return str(self.record_id)

    报错信息:

    TypeError: __str__returned non-string (type bytes)

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×